package org.grow.erp.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.time.LocalDateTime;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.grow.dto.erp.LeaveBillState;
import org.grow.dto.erp.LeaveType;

@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "LeaveBill")
public class LeaveBill {
    @TableId(value = "leaveCode", type = IdType.INPUT)
    private String leaveCode;

    @TableField(value = "leaveType")
    private LeaveType leaveType;

    @TableField(value = "reason")
    private String reason;

    @TableField(value = "leaveFrom")
    private LocalDateTime leaveFrom;

    @TableField(value = "leaveTo")
    private LocalDateTime leaveTo;

    @TableField(value = "submitter")
    private String submitter;

    @TableField(value = "supervisor")
    private String supervisor;

    @TableField(value = "supervisorAdvice")
    private String supervisorAdvice;

    @TableField(value = "manager")
    private String manager;

    @TableField(value = "managerAdvice")
    private String managerAdvice;

    @TableField(value = "submitTime")
    private LocalDateTime submitTime;

    @TableField(value = "updateTime")
    private LocalDateTime updateTime;

    @TableField(value = "leaveBillState")
    private LeaveBillState leaveBillState;

    @TableField(value = "logicDelete")
    private Boolean logicDelete;

    public static final String COL_LEAVECODE = "leaveCode";

    public static final String COL_LEAVETYPE = "leaveType";

    public static final String COL_REASON = "reason";

    public static final String COL_LEAVEFROM = "leaveFrom";

    public static final String COL_LEAVETO = "leaveTo";

    public static final String COL_SUBMITTER = "submitter";

    public static final String COL_SUPERVISOR = "supervisor";

    public static final String COL_SUPERVISORADVICE = "supervisorAdvice";

    public static final String COL_MANAGER = "manager";

    public static final String COL_MANAGERADVICE = "managerAdvice";

    public static final String COL_SUBMITTIME = "submitTime";

    public static final String COL_UPDATETIME = "updateTime";

    public static final String COL_LEAVEBILLSTATE = "leaveBillState";

    public static final String COL_LOGICDELETE = "logicDelete";
}